#ifndef GAMEROOM_H
#define GAMEROOM_H

#include <QWidget>
#include <QSound>
enum class snakeDirect{
    UP = 0,
    DOWN,
    LEFT,
    RIGHT
};

class GameRoom : public QWidget
{
    Q_OBJECT
public:
    explicit GameRoom(QWidget *parent = nullptr);

    //重写绘制对象
    void paintEvent(QPaintEvent *event);
    //判断游戏是否结束
    bool isGameFail();
    //方向移动
    void moveUp();
    void moveDown();
    void moveLeft();
    void moveRight();
    //创建食物
    void creatNewFood();

private:
    //组成蛇的节点的大小长宽
    const int ksnakeNodeWidth = 20;
    const int ksnakeNodeHeigth = 20;
    const int kDefaultTimeout = 200;//蛇的移动速度， 控制关卡难度

    //蛇链表
    QList<QRectF> snakeList;//RectF 意味着矩形

    //食物节点
    QRectF foodNode;

    //蛇的移动方向
    snakeDirect moveDirect = snakeDirect::UP;

    //定时器——控制食物？
    QTimer *timer;

    //判断游戏是否开始
    bool isGameStart = false;

    QSound *sound;
};

#endif // GAMEROOM_H
